/**
 * easyui公用脚本
 */

var pubObject = {};	//全局变量

var lastOper = "";//上一次操作 add,del,update,qry,addOrUpdate (增、删除、改、查,添加或修改)
/**
 *  删除记录
 *  参数说明：
 * gridId 网格ID
 * idsId 存放被删除记录ID的隐藏域的ID
 * formId 表单ID（删除的表单）
 * idName 记录中ID字段名，多个ID以逗号隔开
 * hint 删除时提示信息
 */
function del(gridId,idsId,formId,idName,hint,sucHandle,failHandle){
	if(!hint) hint = "确定删除这些记录?";
	parent.$.messager.confirm('提示', hint, function(r){
		if (r){
			lastOper ="del";
			var ids=getSelections(gridId,idName);
			$("#"+idsId).val(ids);
			if(ids.length<1){
				parent.$.messager.alert('错误','请选择要删除的记录。','error');
			}else{
//				loading();
				$('#'+formId).form('submit',{
					success:function(data){
					var obj = (new Function( "return " + data))();
					var info="";
					if(obj.msg) info="<p style='font-family:'宋体',Arial;font-size:14px;'>"+obj.msg+"</p>";
					if(obj.error){
						info="<p style='font-family:'宋体',Arial;font-size:14px;'>"+obj.error+"</p>";
					}
					if(obj.opERROR){
						info="<p style='font-family:'宋体',Arial;font-size:14px;'>"+obj.opERROR+"</p>";
					}
					if(obj.tag){//成功时
						parent.$.messager.show({
							title:'消息',
							msg:info,
							timeout:3000,
							showType:'slide',
							width:250,
							height:150
						});
						if(sucHandle) sucHandle(); 
						$("#"+gridId).datagrid('reload');
					}else{
						parent.$.messager.alert('消息',info,'info',function(){
						});
						$("a[class='l-btn']").focus();
						if(failHandle) failHandle();
					}
					removeLoading();
				},error:function(){
					removeLoading();
				}
				});
			}
		}
	});
}
/**
 * 从网格中取选中行(多行)
 * @param gridId 网格ID
 * @param keys 网格字段名，多个以逗号隔开
 * @return
 */
function getSelections(gridId,keys){
	var ids = [];
	if(!keys) keys = "id";
	var akey=keys.split(",");
	var rows = $('#'+gridId).datagrid('getSelections');
	if(rows == null || rows=="")
	{
		parent.$.messager.alert('提示消息', "请选择一个信息", 'info');
		return "";
	}
	for(var i=0;i<rows.length;i++){
		var sp="",tmp="",row=rows[i];
		for(var j=0;j<akey.length;j++){
			tmp=tmp+sp+row[akey[j]];
			sp=",";
		}
		ids.push(tmp);
	}
	return ids.join(':');
}
/**
 * 从网格中取选中行（单行）
 * @param gridId 网格ID
 * @param keys 网格字段名
 * @return
 */
function getSingleSelection(gridId,keys){
	var ids = [];
	if(!keys) keys = "id";
	var akey=keys.split(",");
	var row = $('#'+gridId).datagrid('getSelected');
	if(row == null  || row=="")
	{
		parent.$.messager.alert('提示消息', "请选择一个信息", 'info');
		return "";
	}
	return row;
}

function getSingleSelectionTree(gridId,keys){
	var ids = [];
	if(!keys) keys = "id";
	var akey=keys.split(",");
	var row = $('#'+gridId).treegrid('getSelected');
	if(row == null  || row=="")
	{
		parent.$.messager.alert('提示消息', "请选择一个信息", 'info');
		return "";
	}

	var sp="",tmp="";
	for(var j=0;j<akey.length;j++){
		tmp=tmp+sp+row[akey[j]];
		sp=",";
	}

	ids.push(tmp);

	return ids.join(':');
}
/**
 * 打开添加或修改对话框
 * @param title 对话框标题
 * @param dialogId 对话框ID
 * @param gridId 网格ID
 * @param submitFrmId 添加或删除的表单ID
 * @param params 对话框参数json对象,json说明：width为宽、height为高、modal为是否为模式对话框，如{width:200,height:250}
 * @param sucHandle 服务端返回成功后处理
 * @param failHandle 服务端返回失败后处理
 * @param beforeHandle 表单提交前处理
 * @return
 */
function openDialog(title,dialogId,gridId,submitFrmId,params,sucHandle,failHandle,beforeHandle){
	lastOper ="addOrUpdate";
	if(!params){
		params={};
		params.width=400;
		params.height=250;
		params.msgWidth=350;
		params.msgHeight=180;
		params.modal=true;
		params.draggable=true;
		inline:false;
		zIndex:99999999;
	}else{
		if(!params.width) params.width=400;
		if(!params.height) params.height=250;
		if(!params.modal) params.modal=true;
		if(!params.msgWidth) params.msgWidth=350;
		if(!params.msgHeight) params.msgHeight=180;
//		if(!params.draggable) params.draggable=true;
		inline:false;
		zIndex:99999999;
	}

	if(!title) title="对话框";
	if(!dialogId) dialogId="dlg";	
	if(!gridId) gridId="grid";
	if(!submitFrmId) submitFrmId="frm";

	if(params.clearForm==true){
		$('#'+submitFrmId).form('clear');
	}

	$('#'+dialogId).show();
	$('#'+dialogId+" .easyui-combotree").combotree();
	$('#'+dialogId).dialog({
		title:title,
		width:params.width,
		height:params.height,
		modal:params.modal,		
		inline:false,
		draggable:params.draggable,
		buttons:[{
			id:"easyuiSave",
			text:'确定',
			iconCls:'icon-ok',
			handler:function(){
			$('#easyuiSave').linkbutton("disable");
			$('#'+submitFrmId).form('submit',{
				onSubmit:function(){  
				if(beforeHandle) beforeHandle();
				$('#easyuiSave').linkbutton("enable");
				return $("#"+submitFrmId).form('validate');  
			},
			success:function(data){
				var obj = (new Function( "return " + data))();
				var info="";
				if(obj.msg) info="<p style='font-family:'宋体',Arial;font-size:14px;'>"+obj.msg+"</p>";
				if(obj.error){
					info="<p style='font-family:'宋体',Arial;font-size:14px;'>"+obj.error+"</p>";
				}
				if(obj.opERROR){
					info="<p style='font-family:'宋体',Arial;font-size:14px;'>"+obj.opERROR+"</p>";
				}
				if(obj.tag){//成功时
					parent.$.messager.show({
						title:'消息',
						msg:info,
						timeout:3000,
						showType:'slide',
						width:250,
						height:150
					});
					clearSelect(gridId);
					$('#'+dialogId).dialog('close');
					$("#"+gridId).datagrid('reload');
					$('#grid').datagrid("selectRecord",params.RowID);
					$('#'+dialogId).form('clear');
					if(sucHandle) sucHandle(obj);
				}else{
					$("select").hide();
					parent.$.messager.alert('消息',info,'info',function(){$("select").show();});
					$("a[class='l-btn']").focus();
					if(failHandle) failHandle();
				}
				$('#easyuiSave').linkbutton("enable");
			},error:function(){
				$('#easyuiSave').linkbutton("enable");
			}
			});
		}
		},{
			text:'取消',
			iconCls:'icon-cancel',
			handler:function(){
			$('#'+dialogId).dialog('close');
		}
		}]
	});
}
/**
 * 打开添加或修改对话框
 * @param title 对话框标题
 * @param dialogId 对话框ID
 * @param gridId 网格ID
 * @param submitFrmId 添加或删除的表单ID
 * @param params 对话框参数json对象,json说明：width为宽、height为高、modal为是否为模式对话框，如{width:200,height:250}
 * @param sucHandle 服务端返回成功后处理
 * @param failHandle 服务端返回失败后处理
 * @param beforeHandle 表单提交前处理
 * @return
 */
function openTreeDialog(title,dialogId,gridId,submitFrmId,params,sucHandle,failHandle,beforeHandle){
	lastOper ="addOrUpdate";
	if(!params){
		params={};
		params.width=400;
		params.height=250;
		params.msgWidth=350;
		params.msgHeight=180;
		params.modal=true;
	}else{
		if(!params.width) params.width=400;
		if(!params.height) params.height=250;
		if(!params.modal) params.modal=true;
		if(!params.msgWidth) params.msgWidth=350;
		if(!params.msgHeight) params.msgHeight=180;
	}

	if(!title) title="对话框";
	if(!dialogId) dialogId="dlg";	
	if(!gridId) gridId="grid";
	if(!submitFrmId) submitFrmId="frm";

	if(params.clearForm==true){
		$('#'+submitFrmId).form('clear');
	}

	$('#'+dialogId).show();
	$('#'+dialogId+" .easyui-combotree").combotree();
	$('#'+dialogId).dialog({
		title:title,
		width:params.width,
		height:params.height,
		modal:params.modal,
		buttons:[{
			id:"easyuiSave",
			text:'确定',
			iconCls:'icon-ok',
			handler:function(){
			$('#easyuiSave').linkbutton("disable");
			$('#'+submitFrmId).form('submit',{
				onSubmit:function(){  
				if(beforeHandle) beforeHandle();
				$('#easyuiSave').linkbutton("enable");
				return $("#"+submitFrmId).form('validate');  
			},
			success:function(data){
				var obj = (new Function( "return " + data))();
				var info="";
				if(obj.msg) info="<p style='font-family:'宋体',Arial;font-size:14px;'>"+obj.msg+"</p>";
				if(obj.error){
					info+="<p style='font-family:'宋体',Arial;font-size:14px;'>"+obj.error+"</p>";
				}
				if(obj.opERROR){
					info+="<p style='font-family:'宋体',Arial;font-size:14px;'>"+obj.opERROR+"</p>";
				}
				if(obj.tag){//成功时
					parent.$.messager.show({
						title:'消息',
						msg:info,
						timeout:3000,
						showType:'slide',
						width:250,
						height:150
					});
					$('#'+dialogId).dialog('close');
					$("#"+gridId).treegrid('reload');
					$('#'+dialogId).form('clear');
					if(sucHandle) sucHandle(obj);
				}else{
					$("select").hide();
					parent.$.messager.alert('消息',info,'info',function(){$("select").show();});
					$("a[class='l-btn']").focus();
					if(failHandle) failHandle();
				}
				$('#easyuiSave').linkbutton("enable");
			},error:function(){
				$('#easyuiSave').linkbutton("enable");
			}
			});
		}
		},{
			text:'取消',
			iconCls:'icon-cancel',
			handler:function(){
			$('#'+dialogId).dialog('close');
		}
		}]
	});
}
/**
 * 网格查询
 * @param handler 查询处理方法
 * @param dlgParams 对话框参数，json对象
 * @param dialogId 对话框ID
 * @param formId 查询表单的ID
 * @return
 */
function query(handler,dlgParams,dialogId,formId){
	if(!dlgParams){
		dlgParams={};
		dlgParams.width=400;
		dlgParams.height=230;
		dlgParams.modal=true;
	}
	if(!dialogId) dialogId="dlg";
	if(!formId) formId="frm";
	if(!dlgParams.width) dlgParams.width=400;
	if(!dlgParams.height) dlgParams.height=230;
	if(!dlgParams.modal) dlgParams.modal=true;
	var fid="",tag="",forms=formId.split(",");
	for(var i=0;i<forms.length;i++){
		fid=fid+tag+"#"+forms[i];
		tag=",";
	}

	if(lastOper != "qry") $(fid).form('clear');//上一次不是查询时，清除表单信息
	lastOper ="qry";

	$('#'+dialogId).show();
	$('#'+dialogId+" .easyui-combotree").combotree();
	$('#'+dialogId).dialog({
		title:'查询',
		width:dlgParams.width,
		height:dlgParams.height,
		modal:dlgParams.modal,
		buttons:[{
			text:'确定',
			iconCls:'icon-ok',
			handler:handler
		},{
			text:'清除',
			iconCls:'icon-remove',
			handler:function(){
			$(fid).form('clear');
		}	
		},{
			text:'取消',
			iconCls:'icon-cancel',
			handler:function(){
			$('#'+dialogId).dialog('close');
		}
		}]
	});
}
/**
 * 显示进度条
 * @return
 */
function loading(){
	removeLoading();
	$("<div class=\"datagrid-mask\"></div>").css({display:"block",width:"100%",height:$(window).height()}).appendTo("body");
	$("<div class=\"datagrid-mask-msg\"></div>").html("正在处理，请稍候...").appendTo("body").css({display:"block",left:($(document.body).outerWidth(true) - 190) / 2,top:($(window).height() - 100) / 2});	
}
/**
 * 隐藏进度条
 * @return
 */
function removeLoading(){
	$(".datagrid-mask").remove();
	$(".datagrid-mask-msg").remove();
}

/**
 * 显示进度条
 * @return
 */
function tabLoading(){
	removeLoading();
	$("<div id='tabLoader-mask' class=\"datagrid-mask\"></div>").css({display:"block",width:"100%",height:$(window).height()}).appendTo("#tt");
	$("<div id='tabLoader-mask-msg' class=\"datagrid-mask-msg\"></div>").html("正在处理，请稍候...").appendTo("#tt").css({display:"block",left:($(document.body).outerWidth(true) - 190) / 2,top:($(window).height() - 100) / 2});	
}
/**
 * 隐藏进度条
 * @return
 */
function tabRemoveLoading(){
	$("#tabLoader-mask").remove();
	$("#tabLoader-mask-msg").remove();
}

/**
 *取消DataGrid中的行选择(适用于Jquery Easy Ui中的dataGrid)
 *注意：解决了无法取消"全选checkbox"的选择,不过，前提是必须将列表展示
 *数据的DataGrid所依赖的Table放入html文档的最全面，至少该table前没有
 *其他checkbox组件。
 *
 *@paramdataTableId将要取消所选数据记录的目标table列表id
 */
function clearSelect(dataTableId) {
	$('#' + dataTableId).datagrid('clearSelections');
	//取消选择DataGrid中的全选
	$("input[type='checkbox']").eq(0).attr("checked", false);
}
/**
 *格式化gridtable页码显示为中文
 *
 *@dataTableId显示为中文的gridtableID
 */
//function formatpagination(dataTableId) {
//	$('#' + dataTableId).datagrid('getPager').pagination({
//		beforePageText: '第',//页数文本框前显示的汉字 
//		afterPageText: '页    共 {pages} 页',
//		displayMsg:'当前显示从 {from} 到 {to} 共 {total} 记录'
//	  });
//}

//格式化时间格式
function formdate(_datetime,_datetype)
{
	var formdatetime="";
	
	if (_datetime != "")
	{
		
		var year =_datetime.substring(0,4);
		var month =_datetime.substring(4,6);
		var day =_datetime.substring(6,8);
		var hours =_datetime.substring(8,10);
		var minute =_datetime.substring(10,12);
		var second =_datetime.substring(12,14);
		
		if (_datetype == "yyyy-mm-dd hh:mm:ss")
		{
			formdatetime = year + "-" + month + "-" + day + " " +hours + ":" + minute + ":" + second;
		}	
		else if (_datetype == "yyyy-mm-dd")
	
		{
			formdatetime = year + "-" + month + "-" + day;
		}
		else if (_datetype == "mm-dd")
		{
			formdatetime = month + "-" + day;	
		}
		
	}
	return formdatetime;
}
//重写$.fn.validatebox.defaults.rules，验证正文的长度
//$.extend($.fn.validatebox.defaults.rules, { 
//	maxLength: { 
//	validator: function(value, param){ 
//	
//	return value.length <= param[0]; 
//	}, 
//	message: '不能超过1000个字符！'
//	} 
//});